// pages/jqq/player.js
let index //点击视频的索引号
Page({
	timeupdate(e){ //播放进度变化时触发
		this.currentTime=e.detail.currentTime //秒
	},	
	onHide(){ //页面进入后台
		this.save()
	},
	onUnload(){ //页面退出
		this.save()
	},
	save(){ //保存当前视频播放信息
		if(!this.data.sources)return
		let playMessage={ ...this.data }
		delete playMessage.__webviewId__
		let pages=getCurrentPages() //获取当前页面栈。数组中第一个元素为首页，最后一个元素为当前页面。
		let prePage=pages[pages.length-2] //获取视频列表页面对象
		let data=prePage.data //视频列表页面的页面数据
		let menu=data.menus[data.menuIndex] //获取当前菜单项
		let type=menu.types[menu.typeIndex] //获取当前类型
		let video=type.list[index] //获取要播放的视频对象
		let change={} //保存有变化的数据
		change[`menus[${data.menuIndex}].types[${menu.typeIndex}].list[${index}].playMessage`]=playMessage
		prePage.setData(change) //更新列表页面的点击播放的视频信息
	},
	request(url){ //发起请求，返回一个Promise
		return new Promise((resolve, reject)=>{
			wx.request({
				url,
				
				success: r => {
					resolve(r.data) //成功时返回的数据
				},
				fail: e=>{
					resolve(null) //null表示请求失败
				}
			})
		})
	},

	async onLoad(options) { //生命周期函数--监听页面加载
		this.host='https://jqqzx.cc'
		// console.log(options) // options={index: "0"}
		index=parseInt(options.index) //要播放视频的索引号
		let pages=getCurrentPages() //获取当前页面栈。数组中第一个元素为首页，最后一个元素为当前页面。
		let prePage=pages[pages.length-2] //获取视频列表页面对象
		let data=prePage.data //视频列表页面的页面数据
		let menu=data.menus[data.menuIndex] //获取当前菜单项
		let type=menu.types[menu.typeIndex] //获取当前类型
		let video=type.list[index] //获取要播放的视频对象
		if(video.playMessage){
			this.setData(video.playMessage)
			return
		}
		//https://jqqzx.cc/vod/20789.html
		let url=`${this.host}${video.url}` //播放页面的地址
		let html=await this.request(url) //请求播放页面的html文本
		if(html!=null){ //请求成功
			// console.log("网页内容："+html)
			let change={} //记录有变化的数据
			let regex=/<div class="module-info-introduction-content">(.+?)<\/div>/s
			let r=regex.exec(html)
			if(r!=null)change.jj=r[1].replace(/(<\/?(p|br)[^>]*>|　)+/g,'\n　　')
			let sources=[] //存放数据源
			regex=/data-dropdown-value="([^"]+)"/g
			while(r=regex.exec(html)){
				sources.push({
					name: r[1],
				})
			}
			regex=/<div class="module-play-list-content  module-play-list-["^].+">(.+?)<\/div>/gs
			let index=-1
			while(r=regex.exec(html)){
				let r2, list=[], regex2=/href="([^"]+)" title="[^"]+"><span>([^<]+)/g
				while(r2=regex2.exec(r[1])){
					list.push({
						url: r2[1],
						title: r2[2],
					})
				}
				sources[++index].list=list
			}
			change.sources=sources
			this.setData(change)
		}
	},
	sources(e){
		let index=e.target.dataset.index //点击源的索引号
		if(index==null)return //点击到空白地方了
		let change={sourceIndex: index} //记录有变化的数据
		let oldIndex=this.data.sourceIndex //原来的源索引
		if(oldIndex!=null)change[`sources[${oldIndex}].selected`]=false
		change[`sources[${index}].selected`]=true
		this.setData(change)
	},
	play(e){
		let index=e.target.dataset.index //获取点击视频的索引号
		if(index==null)return //点击到空白地方了
		let sourceIndex=this.data.sourceIndex //单管源的索引号
		let source=this.data.sources[sourceIndex] //获取当前数据源
		let change={} //记录有变化的数据
		change[`sources[${sourceIndex}].listIndex`]=index 
		change[`sources[${sourceIndex}].list[${index}].selected`]=true 
		this.setData(change)
	}
})